package register

import (
	"autoDeploy/service/register"
	"github.com/gin-gonic/gin"
	"net/http"
)

type UserRegisterInfo struct{}

//	Register
//
// 描述信息：用户注册接口
//
// Param：
//
//	c ：gin实例
//
// Return：注册状态码 token
func (u UserRegisterInfo) Register(c *gin.Context) {
	// 定义一个 User 结构体用于接收前端发送的注册信息
	var user register.User

	// 解析前端发送的 JSON 数据
	if err := c.ShouldBindJSON(&user); err != nil {
		// 如果解析失败，返回错误信息
		c.JSON(http.StatusBadRequest, gin.H{"code": 0, "controller 注册 解析前端发送的 JSON 数据 error": err.Error()})
		return
	}

	// 调用服务层的注册逻辑
	tokenStr, err := register.RegisterUser(user)
	if err != nil {
		// 如果注册失败，返回错误信息
		c.JSON(http.StatusInternalServerError, gin.H{"code": 0, "controller 注册 调用服务层的注册逻辑error": err.Error()})
		return
	}

	// 注册成功，返回成功信息
	c.JSON(http.StatusOK, gin.H{"code": 1, "message": "Registration successful", "token": tokenStr})
}

// GetCode 发送验证码
func (u UserRegisterInfo) GetCode(c *gin.Context) {
	phone := c.Query("phone")
	//调用service方法获取验证码
	code, err := register.GetValidateCode(phone)
	if err != nil {
		c.JSON(http.StatusInternalServerError, gin.H{"code": 0, "message": err.Error()})
		return
	}
	c.JSON(http.StatusOK, gin.H{"code": code, "message": "获取验证码成功"})
	return
}
